package com.itheima.Work01;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;

public class work06 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        HashMap<String, Object> map = new HashMap<>();
        map.put("id", "heima001");
        map.put("name", "张三");
        map.put("age", 23);
        map.put("birthday", "1999-09-09");


        // 获取Class对象
        Class clazz = Class.forName("com.itheima.Work01.Student");
        // 获取构造来创建对象
        Student student = (Student) clazz.getDeclaredConstructor().newInstance();
        // 获取所有的set方法
        Method[] method = clazz.getDeclaredMethods();
        for (String key : map.keySet()) {
            Object value = map.get(key);
            for (Method m : method) {
                if ("set"
                        .concat(//将指定的字符串连接到该字符串的末尾。
                                key.substring(0, 1)
                                        //substring​(int beginIndex, int endIndex)
                                        // 返回一个字符串，该字符串是此字符串的子字符串
                                        .toUpperCase()
                                        //将此 String所有字符转换为大写，使用默认语言环境的规则。
                                        .concat(key.substring(1)))
                        //将指定的字符串连接到该字符串的末尾。
                        //对比
                        .equals(m.getName())) {
                    m.invoke(student,value);
                }
            }
        }
        System.out.println(student);
    }
}
